package com.ruoyi.lyy.controller;


import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.lyy.domain.pojo.Evaluate;
import com.ruoyi.lyy.domain.pojo.ServiceDetails;
import com.ruoyi.lyy.domain.vo.EvaluationVO;
import com.ruoyi.lyy.domain.vo.PageQueryVO;
import com.ruoyi.lyy.domain.vo.ServiceDetailVO;
import com.ruoyi.lyy.service.IServiceDetailsService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * <p>
 * 服务详情表 前端控制器
 * </p>
 *
 * @author YueYang
 * @since 2025-11-12
 */
@RestController
@RequestMapping("/service-details")
@RequiredArgsConstructor //通过lombok提供的注解 使用构造函数的方式注入ServiceDetailsServiceImpl
public class ServiceDetailsController {

    private final IServiceDetailsService serviceDetailsService;


    /**
     * 根据服务类型id 查询所有商户id
     *
     * @return 返回商户id集合
     */
    @GetMapping("ids")
    public AjaxResult getMerchantIdsByTypeId() {
        List<Integer> ids = serviceDetailsService.getMerchantIdsByTypeId(1);
        return AjaxResult.success("获取商户id集合成功", ids);
    }


    /**
     * 根据商户id 查询该商户对应的服务
     *
     * @param id 商户id
     * @return 返回服务详情集合
     */
    @GetMapping()
    public AjaxResult getServiceDetailsByMid(@RequestParam("mid") Integer id) {
        List<ServiceDetailVO> serviceDetailsList = serviceDetailsService.getServiceDetailsByMid(id);

        return AjaxResult.success("获取服务详情成功", serviceDetailsList);
    }

    /**
     * 根据商户id 查询该商户对应的评价
     *
     * @param mid 商户id
     * @return 返回评价集合
     */
    @GetMapping("/evaluate/{mid}")
    public AjaxResult getEvaluate(@PathVariable("mid") Integer mid,
                                  @RequestParam(value = "pageNum", required = false) Integer pageNum,
                                  @RequestParam("pageSize") Integer pageSize) {
        //根据商户id 查询该商户对应的评价
        PageQueryVO<EvaluationVO> pageList = serviceDetailsService.getEvaluateByMid(mid, pageNum, pageSize);
        return AjaxResult.success("获取评价成功", pageList);
    }
}
